Файл: Domino2.txt
Дата: 10.04.2014
1:
2:
3:
4:
5:
6:
7:
8: присвоить СТОРОНА_ФИШКИ 36 ДИАМЕТР_КРУЖКА 8
9:
10: вычислить * ДЛИННАЯ_СТОРОНА_ФИШКИ [СТОРОНА_ФИШКИ] 2
11: вычислить / ПОЛОВИНА_СТОРОНЫ_ФИШКИ [СТОРОНА_ФИШКИ] 2
12: вычислить / ЧЕТВЕРТЬ_СТОРОНЫ_ФИШКИ [СТОРОНА_ФИШКИ] 4
13: вычислить - ТРИ_ЧЕТВЕРТИ_СТОРОНЫ_ФИШКИ [СТОРОНА_ФИШКИ] [ЧЕТВЕРТЬ_СТОРОНЫ_ФИШКИ]
14: вычислить / РАДИУС_КРУЖКА [ДИАМЕТР_КРУЖКА] 2
15: присвоить ЦВЕТ_ФИШКИ 8 ЦВЕТ_КОНТУРА 1 ЦВЕТ_КРУЖКА 15 ЦВЕТ_СТРЕЛКИ 15 ЦВЕТ_НАДПИСИ 1
16:
17: вычислить / КОЛБАСА_ЛЕВЫЙ_Х [$ШиринаОбластиГрафики] 2
18: вычислить / КОЛБАСА_ЛЕВЫЙ_У [$ВысотаОбластиГрафики] 2
19: присвоить КОЛБАСА_ПРАВЫЙ_Х [КОЛБАСА_ЛЕВЫЙ_Х] КОЛБАСА_ПРАВЫЙ_У [КОЛБАСА_ЛЕВЫЙ_У]
20:
21: функция Рисовать_фишку фишка центр_х центр_у ориентация
22: присвоить $ЦветЛинии [ЦВЕТ_КОНТУРА] $ТолщинаЛинии 1
23: если [ориентация] == горизонтально
24: Рисовать_половинку_фишки \
25: (строка взять $результат [фишка] 1 ) \
26: (вычислить - $результат [центр_х] [СТОРОНА_ФИШКИ] ) \
27: (вычислить - $результат [центр_у] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) \
28: [ориентация]
29: Рисовать_половинку_фишки \
30: (строка взять $результат [фишка] 2 ) \
31: [центр_х] \
32: (вычислить - $результат [центр_у] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) \
33: [ориентация]
34: иначе
35: Рисовать_половинку_фишки \
36: (строка взять $результат [фишка] 1 ) \
37: (вычислить - $результат [центр_х] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) \
38: (вычислить - $результат [центр_у] [СТОРОНА_ФИШКИ] ) \
39: [ориентация]
40: Рисовать_половинку_фишки \
41: (строка взять $результат [фишка] 2 ) \
42: (вычислить - $результат [центр_х] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) \
43: [центр_у] \
44: [ориентация]
45: конец
46: возврат
47:
48: функция Рисовать_половинку_фишки число_точек х1 у1 ориентация
49: присвоить $ЦветКисти [ЦВЕТ_ФИШКИ]
50: вычислить + х2 [х1] [СТОРОНА_ФИШКИ]
51: вычислить + у2 [у1] [СТОРОНА_ФИШКИ]
52: рисовать прямоугольник [х1] [у1] [х2] [у2]
53:
54: если (множество и $результат [число_точек] 1;3;5 )
55: Рисовать_кружок_фишки \
56: (вычислить + $результат [х1] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) \
57: (вычислить + $результат [у1] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] )
58: конец
59: если (множество и $результат [число_точек] 2;3;4;5;6 )
60: Рисовать_кружок_фишки \
61: (вычислить + $результат [х1] [ЧЕТВЕРТЬ_СТОРОНЫ_ФИШКИ] ) \
62: (вычислить + $результат [у1] [ЧЕТВЕРТЬ_СТОРОНЫ_ФИШКИ] )
63: Рисовать_кружок_фишки \
64: (вычислить + $результат [х1] [ТРИ_ЧЕТВЕРТИ_СТОРОНЫ_ФИШКИ] ) \
65: (вычислить + $результат [у1] [ТРИ_ЧЕТВЕРТИ_СТОРОНЫ_ФИШКИ] )
66: конец
67: если (множество и $результат [число_точек] 4;5;6 )
68: Рисовать_кружок_фишки \
69: (вычислить + $результат [х1] [ТРИ_ЧЕТВЕРТИ_СТОРОНЫ_ФИШКИ] ) \
70: (вычислить + $результат [у1] [ЧЕТВЕРТЬ_СТОРОНЫ_ФИШКИ] )
71: Рисовать_кружок_фишки \
72: (вычислить + $результат [х1] [ЧЕТВЕРТЬ_СТОРОНЫ_ФИШКИ] ) \
73: (вычислить + $результат [у1] [ТРИ_ЧЕТВЕРТИ_СТОРОНЫ_ФИШКИ] )
74: конец
75: если [число_точек] == 6
76: если [ориентация] == горизонтально
77: Рисовать_кружок_фишки \
78: (вычислить + $результат [х1] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) \
79: (вычислить + $результат [у1] [ЧЕТВЕРТЬ_СТОРОНЫ_ФИШКИ] )
80: Рисовать_кружок_фишки \
81: (вычислить + $результат [х1] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) \
82: (вычислить + $результат [у1] [ТРИ_ЧЕТВЕРТИ_СТОРОНЫ_ФИШКИ] )
83: иначе
84: Рисовать_кружок_фишки \
85: (вычислить + $результат [х1] [ЧЕТВЕРТЬ_СТОРОНЫ_ФИШКИ] ) \
86: (вычислить + $результат [у1] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] )
87: Рисовать_кружок_фишки \
88: (вычислить + $результат [х1] [ТРИ_ЧЕТВЕРТИ_СТОРОНЫ_ФИШКИ] ) \
89: (вычислить + $результат [у1] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] )
90: конец
91: конец
92: возврат
93:
94: функция Рисовать_кружок_фишки х у
95: присвоить $ЦветКисти [ЦВЕТ_КРУЖКА]
96: рисовать круг \
97: (вычислить - $результат [х] [РАДИУС_КРУЖКА] ) \
98: (вычислить - $результат [у] [РАДИУС_КРУЖКА] ) \
99: (вычислить + $результат [х] [РАДИУС_КРУЖКА] ) \
100: (вычислить + $результат [у] [РАДИУС_КРУЖКА] )
101: возврат
102:
103: функция Рисовать_стрелку_переноса х у направление
104: память локальный у1 у2 х1
105:
106: вычислить - у1 [у] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ]
107: вычислить + у2 [у] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ]
108:
109: если [направление] == вправо
110: вычислить + х1 [х] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ]
111: иначе
112: вычислить - х1 [х] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ]
113: конец
114:
115: присвоить $ЦветКисти [ЦВЕТ_СТРЕЛКИ] $ЦветЛинии [ЦВЕТ_СТРЕЛКИ]
116: рисовать треугольник [х] [у1] [х] [у2] [х1] [у]
117: возврат
118:
119: функция Поставь_фишку_в_колбасу фишка край_колбасы
120: память локальный сдвиг_центр сдвиг_фишка ориентация у х1 у1
121:
122: если (множество и $результат [фишка] 00;11;22;33;44;55;66 )
123: присвоить ориентация вертикально сдвиг_центр [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] сдвиг_фишка [СТОРОНА_ФИШКИ]
124: иначе
125: присвоить ориентация горизонтально сдвиг_центр [СТОРОНА_ФИШКИ] сдвиг_фишка [ДЛИННАЯ_СТОРОНА_ФИШКИ]
126: конец
127:
128: если [край_колбасы] == справа
129:
130: если [КОЛБАСА_ПРАВЫЙ_Х] >= (вычислить - $результат [$ШиринаОбластиГрафики] [ДЛИННАЯ_СТОРОНА_ФИШКИ] )
131: Рисовать_стрелку_переноса [КОЛБАСА_ПРАВЫЙ_Х] [КОЛБАСА_ПРАВЫЙ_У] вправо
132: вычислить / КОЛБАСА_ПРАВЫЙ_Х [$ШиринаОбластиГрафики] 2
133: вычислить - КОЛБАСА_ПРАВЫЙ_У $ [ДЛИННАЯ_СТОРОНА_ФИШКИ] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ]
134: Рисовать_стрелку_переноса (вычислить - $результат [КОЛБАСА_ПРАВЫЙ_Х] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) [КОЛБАСА_ПРАВЫЙ_У] вправо
135: конец
136: вычислить + сдвиг_центр $ [КОЛБАСА_ПРАВЫЙ_Х]
137: вычислить + КОЛБАСА_ПРАВЫЙ_Х $ [сдвиг_фишка]
138: присвоить у [КОЛБАСА_ПРАВЫЙ_У]
139: иначе
140:
141: если [КОЛБАСА_ЛЕВЫЙ_Х] <= [ДЛИННАЯ_СТОРОНА_ФИШКИ]
142: Рисовать_стрелку_переноса [КОЛБАСА_ЛЕВЫЙ_Х] [КОЛБАСА_ЛЕВЫЙ_У] влево
143: вычислить / КОЛБАСА_ЛЕВЫЙ_Х [$ШиринаОбластиГрафики] 2
144: вычислить + КОЛБАСА_ЛЕВЫЙ_У $ [ДЛИННАЯ_СТОРОНА_ФИШКИ] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ]
145: Рисовать_стрелку_переноса (вычислить + $результат [КОЛБАСА_ЛЕВЫЙ_Х] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) [КОЛБАСА_ЛЕВЫЙ_У] влево
146: конец
147: вычислить - сдвиг_центр [КОЛБАСА_ЛЕВЫЙ_Х] [сдвиг_центр]
148: вычислить - КОЛБАСА_ЛЕВЫЙ_Х $ [сдвиг_фишка]
149: присвоить у [КОЛБАСА_ЛЕВЫЙ_У]
150: конец
151:
152: Рисовать_фишку [фишка] [сдвиг_центр] [у] [ориентация]
153: возврат
154:
155: функция Рисовать_фишки_на_руке х у фишки_на_руке
156: для [фишки_на_руке]
157: Рисовать_фишку [$ОбъектЦикла] [х] [у] вертикально
158: увеличить х [СТОРОНА_ФИШКИ]
159: следующий
160: присвоить $ЦветКисти 16 $ЦветЛинии 16
161: рисовать прямоугольник \
162: (вычислить - $результат [х] [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] ) \
163: (вычислить - $результат [у] [СТОРОНА_ФИШКИ] ) \
164: [$ШиринаОбластиГрафики] \
165: (вычислить + $результат [у] [СТОРОНА_ФИШКИ] )
166: возврат
167:
168: функция Рисовать_фишки_компьютера
169: присвоить $ЦветТекста [ЦВЕТ_НАДПИСИ] $ЦветКисти 16
170: рисовать текст [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] (вычислить - $результат [СТОРОНА_ФИШКИ] 20 ) Компьютер
171: Рисовать_фишки_на_руке [СТОРОНА_ФИШКИ] [ДЛИННАЯ_СТОРОНА_ФИШКИ] [РУКА_КОМПЬЮТЕРА]
172: возврат
173:
174: функция Рисовать_фишки_игрока
175: память локальный у
176: вычислить - у [$ВысотаОбластиГрафики] [ДЛИННАЯ_СТОРОНА_ФИШКИ] [СТОРОНА_ФИШКИ]
177: присвоить $ЦветТекста [ЦВЕТ_НАДПИСИ] $ЦветКисти 16
178: рисовать текст [ПОЛОВИНА_СТОРОНЫ_ФИШКИ] (вычислить - $результат [у] [СТОРОНА_ФИШКИ] 20 ) Игрок
179: Рисовать_фишки_на_руке [СТОРОНА_ФИШКИ] [у] [РУКА_ИГРОКА]
180: возврат
181:
182:
183:
184: функция Протокол текст
185: >[текст]
186: возврат
187:
188: функция ПротоколN текст
189: для [текст]
190: >[$ОбъектЦикла]
191: следующий
192: возврат
193:
194:
195:
196:
197:
198:
199:
200: функция Ставь_фишку фишка_проверенная
201: память локальный варианты вариант кл кп фл фп ответ
202:
203: строка взять кл [КОЛБАСА] 1
204: строка взять кп [КОЛБАСА] (строка размер $результат [КОЛБАСА] )
205: строка взять фл [фишка_проверенная] 1
206: строка взять фп [фишка_проверенная] 2
207:
208: Ход_допустимый? варианты [фишка_проверенная]
209:
210:
211: если [КОЛБАСА] == {}
212: список сцепить КОЛБАСА [КОЛБАСА] [фишка_проверенная]
213: Поставь_фишку_в_колбасу [фишка_проверенная] справа
214: иначе
215: список голова вариант [варианты]
216: если [КТО_ХОДИТ] == игрок
217: если (список размер $результат [варианты] ) == 2
218: если (вычислить и $результат (вычислить != $результат [кл] [кп] ) (вычислить != $результат [фл] [фп] ) )
219: ввести меню1 ответ "Куда ставить фишку [фишка_проверенная]?" слева;справа
220: если [ответ] == слева
221: если [кл] == [фл]
222: присвоить вариант лл
223: иначе
224: присвоить вариант лп
225: конец
226: иначе
227: если [кп] == [фл]
228: присвоить вариант пл
229: иначе
230: присвоить вариант пп
231: конец
232: конец
233: конец
234: конец
235: конец
236:
237: выбрать [вариант]
238: вариант лл
239: список сцепить КОЛБАСА "[фп][фл]" [КОЛБАСА]
240: Поставь_фишку_в_колбасу "[фп][фл]" слева
241: вариант лп
242: список сцепить КОЛБАСА "[фл][фп]" [КОЛБАСА]
243: Поставь_фишку_в_колбасу "[фл][фп]" слева
244: вариант пл
245: список сцепить КОЛБАСА [КОЛБАСА] "[фл][фп]"
246: Поставь_фишку_в_колбасу "[фл][фп]" справа
247: вариант пп
248: список сцепить КОЛБАСА [КОЛБАСА] "[фп][фл]"
249: Поставь_фишку_в_колбасу "[фп][фл]" справа
250: конецВыбора
251: конец
252:
253:
254: если [КТО_ХОДИТ] == компьютер
255: множество разность РУКА_КОМПЬЮТЕРА [РУКА_КОМПЬЮТЕРА] [фишка_проверенная]
256: Протокол "Комп: [фишка_проверенная] [РУКА_КОМПЬЮТЕРА]"
257: иначе
258: множество разность РУКА_ИГРОКА [РУКА_ИГРОКА] [фишка_проверенная]
259: Протокол "Игрок: [фишка_проверенная] [РУКА_ИГРОКА]"
260: конец
261: возврат
262:
263: функция Ход_допустимый? варианты_установки фишка_кандидат
264: память локальный кл кп фл фп
265: присвоить [варианты_установки] {}
266:
267: если [КОЛБАСА] == {}
268: присвоить [варианты_установки] лл;лп;пл;пп
269: иначе
270: строка взять кл [КОЛБАСА] 1
271: строка взять кп [КОЛБАСА] (строка размер $результат [КОЛБАСА] )
272: строка взять фл [фишка_кандидат] 1
273: строка взять фп [фишка_кандидат] 2
274:
275: если [кл] == [фл]
276: множество или [варианты_установки] [[варианты_установки]] лл
277: конец
278: если [кл] == [фп]
279: множество или [варианты_установки] [[варианты_установки]] лп
280: конец
281: если [кп] == [фл]
282: множество или [варианты_установки] [[варианты_установки]] пл
283: конец
284: если [кп] == [фп]
285: множество или [варианты_установки] [[варианты_установки]] пп
286: конец
287: конец
288: возврат
289:
290: функция Есть_чем_ходить? варианты_ходов на_руке
291: память локальный варианты_установки_фишки
292: присвоить [варианты_ходов] {}
293:
294: если [КОЛБАСА]
295: для [на_руке]
296: Ход_допустимый? варианты_установки_фишки [$ОбъектЦикла]
297: если [варианты_установки_фишки]
298: множество или [варианты_ходов] [[варианты_ходов]] [$ОбъектЦикла]
299: конец
300: следующий
301: иначе
302: присвоить [варианты_ходов] [на_руке]
303: конец
304: возврат
305:
306: функция Иди_на_базар рука
307: память локальный кол фишка варианты взято_с_базара
308:
309: присвоить кол 0
310: присвоить взято_с_базара {}
311: для [КОЛОДА]
312: вычислить + кол [кол] 1
313: список выбратьСлучайный фишка [КОЛОДА]
314: множество разность КОЛОДА [КОЛОДА] [фишка]
315: множество или [рука] [[рука]] [фишка]
316: список сцепить взято_с_базара [взято_с_базара] [фишка]
317:
318: Ход_допустимый? варианты [фишка]
319: если [варианты]
320: присвоить $СписокЦикла {}
321: конец
322: следующий
323:
324: если [кол] > 0
325: показать сообщение "[рука] сходил на базар [кол] раз!"
326: Протокол "[рука] сходил на базар [кол] раз! [взято_с_базара]"
327: конец
328: возврат
329:
330: функция Ход_компьютера
331: память локальный фишка варианты дупель_найден фл фп
332: присвоить КТО_ХОДИТ компьютер
333:
334: Есть_чем_ходить? варианты [РУКА_КОМПЬЮТЕРА]
335:
336: если [варианты] == {}
337: Иди_на_базар РУКА_КОМПЬЮТЕРА
338: конец
339:
340: если [РУКА_КОМПЬЮТЕРА]
341: Есть_чем_ходить? варианты [РУКА_КОМПЬЮТЕРА]
342: если [варианты]
343:
344:
345: список инвертировать варианты [варианты]
346: присвоить дупель_найден ''
347: для [варианты]
348: строка взять фл [$ОбъектЦикла] 1
349: строка взять фп [$ОбъектЦикла] 2
350: если [фл] == [фп]
351: присвоить дупель_найден [$ОбъектЦикла]
352: присвоить $СписокЦикла {}
353: конец
354: следующий
355: если [дупель_найден]
356: присвоить фишка [дупель_найден]
357: иначе
358: список взять фишка [варианты] 1
359: конец
360:
361: Ставь_фишку [фишка]
362: иначе
363: показать сообщение "Компьютер катом."
364: Протокол "Компьютер катом. [РУКА_КОМПЬЮТЕРА] [КОЛОДА]"
365: конец
366: конец
367:
368: Рисовать_фишки_компьютера
369: Игра_окончена?
370: возврат
371:
372: функция Ход_игрока
373: память локальный фишка варианты рука_с_подсказкой вариант
374: присвоить КТО_ХОДИТ игрок
375:
376: Рисовать_фишки_игрока
377:
378: Есть_чем_ходить? варианты [РУКА_ИГРОКА]
379:
380: если [варианты] == {}
381: Иди_на_базар РУКА_ИГРОКА
382: Рисовать_фишки_игрока
383: конец
384:
385: если [РУКА_ИГРОКА]
386: Есть_чем_ходить? варианты [РУКА_ИГРОКА]
387: если [варианты]
388: присвоить рука_с_подсказкой {}
389: для [РУКА_ИГРОКА]
390: множество и вариант [$ОбъектЦикла] [варианты]
391: если [вариант]
392: список сцепить рука_с_подсказкой [рука_с_подсказкой] ">[$ОбъектЦикла]"
393: иначе
394: список сцепить рука_с_подсказкой [рука_с_подсказкой] " [$ОбъектЦикла]"
395: конец
396: следующий
397:
398: для 1
399: ввести меню1 фишка '' [рука_с_подсказкой]
400:
401: строка удалить фишка [фишка] 1 1
402:
403: Ход_допустимый? варианты [фишка]
404: если [варианты]
405: Ставь_фишку [фишка]
406: иначе
407: показать сообщение "Недопустимый ход [фишка]!"
408: присвоить $СписокЦикла 1
409: конец
410: следующий
411: иначе
412: показать сообщение "Игрок катом."
413: Протокол "Игрок катом. [РУКА_ИГРОКА] [КОЛОДА]"
414: конец
415: конец
416:
417: Рисовать_фишки_игрока
418: Игра_окончена?
419: возврат
420:
421: функция Игра_окончена?
422: память локальный игра_окончена очки_комп очки_игрок победитель
423: память локальный кл кп фл фп длина кол
424: присвоить игра_окончена нет
425:
426: если [КТО_ХОДИТ] == компьютер
427: если [РУКА_КОМПЬЮТЕРА] == {}
428: присвоить игра_окончена да
429: конец
430: иначе
431: если [РУКА_ИГРОКА] == {}
432: присвоить игра_окончена да
433: конец
434: конец
435:
436:
437: строка размер длина [КОЛБАСА]
438: строка взять кл [КОЛБАСА] 1
439: строка взять кп [КОЛБАСА] [длина]
440: если [кл] == [кп]
441: присвоить кол 0
442: для [КОЛБАСА]
443: строка взять фл [$ОбъектЦикла] 1
444: строка взять фп [$ОбъектЦикла] 2
445: если [фл] == [кл]
446: вычислить + кол [кол] 1
447: конец
448: если [фп] == [кп]
449: вычислить + кол [кол] 1
450: конец
451: следующий
452: если [кол] = 8
453: присвоить игра_окончена да
454: показать сообщение 'Рыба!!!'
455: конец
456: конец
457:
458: если [игра_окончена] == да
459: Подсчет_очков_на_руке [РУКА_КОМПЬЮТЕРА]
460: присвоить очки_комп [Подсчет_очков_на_руке]
461:
462: Подсчет_очков_на_руке [РУКА_ИГРОКА]
463: присвоить очки_игрок [Подсчет_очков_на_руке]
464:
465: >
466: >Результат
467: > Компьютер: [очки_комп] - Игрок: [очки_игрок]
468: > Колбаса: [КОЛБАСА]
469: > Компьютер: [РУКА_КОМПЬЮТЕРА]
470: > Игрок: [РУКА_ИГРОКА]
471: > Колода: [КОЛОДА]
472:
473: присвоить победитель ничья
474: если [очки_комп] < [очки_игрок]
475: присвоить победитель компьютер
476: показать сообщение "Я выиграл :)!"
477: конец
478: если [очки_комп] > [очки_игрок]
479: присвоить победитель игрок
480: показать сообщение "Вы выиграли :(!"
481: конец
482: если [очки_комп] = [очки_игрок]
483: показать сообщение "Боевая ничья!"
484: конец
485:
486: стоп
487: конец
488: возврат
489:
490: функция Подсчет_очков_на_руке на_руке
491: память локальный фл фп
492: присвоить Подсчет_очков_на_руке 0
493:
494: если [на_руке] == 00
495: присвоить Подсчет_очков_на_руке 10
496: иначе
497: для фишка [на_руке]
498: строка взять фл [фишка] 1
499: строка взять фп [фишка] 2
500: присвоить Подсчет_очков_на_руке (вычислить + $результат [Подсчет_очков_на_руке] [фл] [фп] )
501: следующий
502: конец
503: возврат
504:
505: функция Генерация_колоды
506: память локальный x y
507:
508: присвоить КОЛОДА {}
509: список сгенерить ТОЧКИ 0 6
510: для x [ТОЧКИ]
511: для y [ТОЧКИ]
512: если [x] <= [y]
513: множество или КОЛОДА [КОЛОДА] "[x][y]"
514: конец
515: следующий
516: следующий
517: возврат
518:
519: функция Сдача_фишек набор_фишек
520: память локальный рука фишка
521:
522: присвоить рука {}
523: для 1;2;3;4;5;6;7
524: список выбратьСлучайный фишка [КОЛОДА]
525: множество разность КОЛОДА [КОЛОДА] [фишка]
526: множество или рука [рука] [фишка]
527: следующий
528: присвоить [набор_фишек] [рука]
529: возврат
530:
531:
532:
533: присвоить КОЛБАСА {}
534:
535: Генерация_колоды
536: Сдача_фишек РУКА_КОМПЬЮТЕРА
537: Сдача_фишек РУКА_ИГРОКА
538:
539: ПротоколN "Протокол игры в домино;;Начальная раздача"
540: Протокол " Компьютер: [РУКА_КОМПЬЮТЕРА]"
541: Протокол " Игрок: [РУКА_ИГРОКА]"
542:
543: присвоить ХОД 1
544: пока [ХОД]
545: Протокол ''
546: Протокол "ход N [ХОД]"
547: Протокол "Колбаса: [КОЛБАСА]"
548:
549: Ход_компьютера
550: Ход_игрока
551:
552: вычислить + ХОД [ХОД] 1
553: цикл